package com.ruoyi.web.controller.sale;

import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.system.domain.Aixs;
import com.ruoyi.system.domain.SysDept;
import com.ruoyi.system.domain.SysRole;
import com.ruoyi.system.domain.SysUser;
import com.ruoyi.system.service.AixsService;
import com.ruoyi.system.service.ISysDeptService;
import io.swagger.annotations.*;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author testjava
 * @since 2020-10-29
 */
@Api("销售管理")
@CrossOrigin
@Controller
@RequestMapping("/sale/aixs")
public class AixsController extends BaseController {

  private String prefix = "sale/aixs";

  @RequiresPermissions("sale:aixs:view")
  @GetMapping()
  public String aixs()
  {
    return prefix + "/aixs";
  }

    @Autowired
    private AixsService aixsService;

    @Autowired
    private ISysDeptService iSysDeptService;

    @GetMapping("/detail")
    public R detail() {
        return R.ok();
    }






//    @GetMapping("/getList")
//    public R getList() {
//
//        List<Aixs> list = aixsService.list(new QueryWrapper<Aixs>().last("where rownum < 6"));
//
//        return R.ok().data("aixsList",list);
//
//    }

//    /**
//     * 分页查询
//     * @param page 分页对象
//     * @param aixs
//     * @return
//     */
//    @ApiOperation("分页查询")
//    @GetMapping("/page")
//    public R getExamMockPage(Page page, Aixs aixs) {
//
//        IPage page1 = aixsService.page(page, Wrappers.query(aixs));
//
//        return R.ok().data("list",page1);
//
//    }

//    @ApiOperation(value = "分页销售列表")
//    @GetMapping("{page}/{limit}")
//    public R pageQuery(
//            @ApiParam(name = "page", value = "当前页码", required = true)
//            @PathVariable Long page,
//
//            @ApiParam(name = "limit", value = "每页记录数", required = true)
//            @PathVariable Long limit,
//
//            @ApiParam(name = "saleQuery", value = "查询对象", required = false)
//              SaleQuery saleQuery){
//
//        Page<Aixs> pageParam = new Page<>(page, limit);
//
//        aixsService.pageQuery(pageParam, saleQuery);
//        List<Aixs> records = pageParam.getRecords();
//        long total = pageParam.getTotal();
//
//        return  R.ok().data("total", total).data("rows", records);
//
//    }


  @ApiOperation("获取销售列表")
  @RequiresPermissions("sale:aixs:list")
  @PostMapping("/list")
  @ResponseBody
  public TableDataInfo list(Aixs aixs)
  {

    // 取出登录用户信息
    SysUser user = (SysUser)SecurityUtils.getSubject().getPrincipal();
    // 是否拥有超级管理员标志
    Boolean flag = false;
    List<SysRole> roles = user.getRoles();
    for (SysRole role : roles) {
      if (role.getRoleId().equals(1L)) flag = true;
    }

    if (flag.equals(false)) {
      Long deptId = user.getDeptId();
      SysDept sysDept = iSysDeptService.selectDeptById(deptId);
      aixs.set部门(sysDept.getDeptName());
    }

    startPage();
    List<Aixs> list = aixsService.selectAixsList(aixs);

    // 查询出当前条件的总金额数
    Double sum = aixsService.selectAixsPrice(aixs);

    sum = (double)Math.round(sum*100)/100;

    TableDataInfo dataTable = getDataTable(list);

    for (int i = 0; i < list.size(); i++) {
      if (i == 0) {
        Aixs aixs1 = list.get(0);
        aixs1.setAllPrice(sum);
      } else {
        Aixs aixs1 = list.get(i);
        aixs1.setAllPrice(0D);
      }
    }

    return dataTable;
  }


}

